non-modal windows
Most windows created by GUI programs are non-modal windows. Programs can create, configure, display, hide, and detect user actions in non-modal windows at any time, in any order. Whenever programs display more than one non-modal window at a time, the user is free to operate any of them. Programs can selectively display and hide non-modal windows to control the choices available to users.

modal windows
Modal windows appear, wait for a user response, then disappear. Modal windows "take over" an application until the user responds with a selection of some kind. Once displayed, modal windows intercept and discard all attempts to operate other windows created by the same program.

one-liner modal windows
Three convenience functions create, configure, display, operate and destroy a modal window in one line:

XuiMessage ( message$ )
XuiDialog ( message$, default$, @kid, @reply$ )
XuiGetResponse ( gridType$, title$, message$, grid$, @v0, @v1, @kid, @reply$ )

modal windows with convenience functions
Three convenience functions let your programs create and configure any kind of window, then display, operate and hide it whenever they want :

XuiCreateWindow ( @grid, gridType$, x, y, width, height, winType, display$ )
XuiSendStringMessage ( grid, message$, v0, v1, v2, v3, kid, r1 )
XuiGetReply ( grid, title$, message$, grids$, @v0, @v1, @kid, @reply )

non-modal windows with convenience functions
Two already mentioned plus two new convenience functions support simplified non-modal windows :

XuiCreateWindow ( @grid, gridType$, x, y, width, height, winType, display$ )
XuiSendStringMessage ( grid, message$, v0, v1, v2, v3, kid, r1 )
XuiQueueCallbacks ( grid, message, v0, v1, v2, v3, kid, r1 )
XuiGetNextCallback ( @grid, @message$, @v0, @v1, @v2, @v3, @kid, @r1$ )

conventional programs
The GuiDesigner Programmer Guide describes how to create conventional GuiDesigner programs, the framework for which is created by F ile N ew GuiProgram or by .fn g in the upper text area.

Conventional programs can call the modal convenience functions freely, but are not compatible with the non-modal convenience functions XuiQueueCallbacks() and XuiGetNextCallback() .

convenience programs
This manual shows how to write GuiDesigner convenience programs. The basic framework for these convenience programs is created by F ile N ew Program or by .fn p in the upper text area.

Convenience programs can call the modal and non-modal convenience functions freely, but non-modal convenience functions XuiQueueCallbacks() and XuiGetNextCallback() are not compatible with conventional GuiDesigner programs.